#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
#include<list>
using namespace std;

//int main()
//{
//	list<int> li;
//	li.push_back(1);
//	li.push_back(2);
//	li.push_back(3);
//	li.push_back(4);
//	for (auto& num : li) 
//	{
//		cout << num << " ";
//	}
//	cout << endl;
//	li.pop_back();
//	for (auto& num : li)
//	{
//		cout << num << " ";
//	}
//	cout << endl;
//	return 0;
//}

//int main()
//{
//	list<int> li;
//	li.push_front(1);
//	li.push_front(2);
//	li.push_front(3);
//	li.push_front(4);
//	for (auto& num : li)
//	{
//		cout << num << " ";
//	}
//	cout << endl;
//	li.pop_front();
//	for (auto& num : li)
//	{
//		cout << num << " ";
//	}
//	cout << endl;
//	return 0;
//}

//int main()
//{
//	list<int> li1 = { 1,1,1,1,1 };
//	li1.assign(3, 3);
//	for (auto& num : li1)
//	{
//		cout << num << " ";
//	}
//	cout << endl;
//	list<int> li2 = { 2,2,2,2,2 };
//	li1.swap(li2);
//	for (auto& num : li1)
//	{
//		cout << num << " ";
//	}
//	cout << endl;
//	for (auto& num : li2)
//	{
//		cout << num << " ";
//	}
//	return 0;
//}

int main()
{
	list<int> li = { 1,2,3,4,5 };
	list<int>::iterator it = li.begin();
	it = li.erase(it);
	for (auto& num : li)
	{
		cout << num << " ";
	}
	return 0;
}